1 using UnityEngine;
2 using
UnityEditor;
3
4
5 namespace
UnityStandardAssets.Water
6 {
7     
[CustomEditor(typeof(PlanarReflection))]
8     
public class PlanarReflectionEditor : Editor
9     {
10         
private SerializedObject serObj;
11
12         
//private SerializedProperty wavesFrequency;
13
14         
// reflection
15         
private SerializedProperty reflectionMask;
16         
private SerializedProperty reflectSkybox;
17         
private SerializedProperty clearColor;
18
19         
bool showKidsWithReflectionHint = false;
20
21         
public void OnEnable()
22         {
23             serObj =
new SerializedObject(target);
24
25             reflectionMask = serObj.FindProperty(
"reflectionMask");
26             reflectSkybox = serObj.FindProperty(
"reflectSkybox");
27             clearColor = serObj.FindProperty(
"clearColor");
28         }
29
30         
public override void OnInspectorGUI()
31         {
32             GUILayout.Label(
"Render planar reflections and use GrabPass for refractions", EditorStyles.miniBoldLabel);
33
34             serObj.Update();
35
36             EditorGUILayout.PropertyField(reflectionMask,
new GUIContent("Reflection layers"));
37             EditorGUILayout.PropertyField(reflectSkybox,
new GUIContent("Use skybox"));
38             EditorGUILayout.PropertyField(clearColor,
new GUIContent("Clear color"));
39
40             showKidsWithReflectionHint = EditorGUILayout.BeginToggleGroup(
"Show all tiles", showKidsWithReflectionHint);
41             
if (showKidsWithReflectionHint)
42             {
43                 
int i = 0;
44                 
foreach (Transform t in ((PlanarReflection)target).transform)
45                 {
46                     
if (t.GetComponent<WaterTile>())
47                     {
48                         
if (i % 2 == 0)
49                             EditorGUILayout.BeginHorizontal();
50                         EditorGUILayout.ObjectField(t,
typeof(Transform), true);
51                         
if (i % 2 == 1)
52                             EditorGUILayout.EndHorizontal();
53                         i = (i +
1) % 2;
54                     }
55                 }
56                 
if (i > 0)
57                     EditorGUILayout.EndHorizontal();
58             }
59             EditorGUILayout.EndToggleGroup();
60
61             serObj.ApplyModifiedProperties();
62         }
63
64     }
65 }


Gõ tìm kiếm nhanh...